The present disclosure relates to verification of computerized systems, in general, and to generating tests based on test templates in particular.
Computerized devices control almost every aspect of our life—from writing documents to controlling traffic lights. However, computerized devices are bug-prone, and thus require a testing phase in which the bugs should be discovered. The testing phase, also referred to as verification phase, is considered one of the most difficult tasks in designing a computerized device. The cost of a bug may be enormous, as its consequences may be disastrous. For example, a bug may cause the injury of a person relying on the designated functionality of the computerized device. Additionally, a bug in hardware or firmware may be expensive to fix, as patching it requires call-back of the computerized device. Hence, many developers of computerized devices invest a significant portion, such as 70%, of the development cycle to discover erroneous functionalities of the computerized device.
A test template, comprising several template instructions, may be designed in order to test an aspect of a target computerized system. The test template may be utilized by a generator that generates several tests that are in line with the test template. The test may be, for example, a binary file or an assembler program that is configured to perform actions defined in the test template. In some cases, the test may be a text file comprising instructions to components of the target computerized system, such as processors, a simulator of the environment of the target computerized system, cache and the like.